它是 Nmap
一項強大功能,允許用戶通過 Lua
程語言編寫和使用腳本,從而擴展 Nmap
的功能。NSE
不僅僅局限於端口掃描,它能與各種服務進行互動,檢測漏洞,並收集網絡設備的詳細資訊。
類別 | 描述 |
---|---|
Auth | 這些腳本用於識別或測試服務的身份驗證憑據。 |
Broadcast | 通過發送廣播訊息來發現網絡中的主機,可用於高效的主機發現。 |
Brute | 透過使用各種憑據嘗試對服務進行暴力破解登入。 |
Default | 一組常用且安全的腳本,在使用 Nmap 的 -sC 選項時會自動執行。 |
Discovery | 這些腳本用於收集目標系統上可訪問服務的資訊,提供對目標的廣泛視圖。 |
Dos | 檢測可能導致拒絕服務(DoS )攻擊的漏洞,因可能會對服務造成損害,需謹慎使用。 |
Exploit | 這些腳本嘗試利用已知的服務漏洞來對目標進行攻擊。 |
External | 使用外部資源或服務進行額外的資料收集,如 DNS 查詢或 WHOIS 資訊查詢。 |
Fuzzer | 透過發送異常或格式錯誤的資料包來測試服務的弱點,幫助識別如資料包處理錯誤等問題。 |
Intrusive | 這些腳本較具攻擊性,可能會對目標系統產生負面影響,通常涉及漏洞利用或高資源消耗。 |
Malware | 檢查目標系統是否受到已知惡意軟體的感染。 |
Safe | 非侵入性的防禦性腳本,不會對目標系統造成破壞或影響。 |
Version | 這些腳本用於擴展服務偵測,幫助識別目標服務的具體版本。 |
Vuln | 用於識別目標系統中的特定安全漏洞。 |
想要查找某 script
類別裡面有哪些 script
,可以下以下的指令~
nmap --script-help <script-category>
以 discovery
為例,如果說讀者想要找尋 discovery
類別的 script
,則可以這樣下:
nmap --script-help discovery
結果如下:
這邊的 acarsd-info
就是其中一個屬於 discovery
類別的指令~
假設你發現有太多資訊了,只想要查找 "c
" 開頭的 script
,也可以這樣找:
nmap --script-help "c* and discovery"
就可以看到滿多 "c
" 開頭的 script
如果你想要針對某個 target
執行某 script
,讀者可以下以下指令:
nmap --script <script-name> <target>
script-name
的部分就是你查詢到想要使用的 script
名稱 ~
想要指定某個類別的話,就把 script-name
換成該類別就好了喔!
nmap -sC <target>
如果是想使用 default
類別的 script
,加上 -sC
就可以惹!
筆者 say say 念:
看完好用的
NSE
後,咱們來看看進階的部分吧!
小故事時間:
情境題:
假設有一個壞蛋,他想要拿雷射筆對付貓咪守衛 XD
當他拿雷射筆在貓咪守衛面前掃射,想看看會不會吸引貓咪守衛的注意><
請問:
是快速掃射一次容易吸引貓咪守衛的注意?
還是快速掃射多次?
應該... 是快速掃射多次吧! 畢竟出現的頻率比較高@@
其實,換成網路掃描也是一樣的,這邊的守衛就是目標主機的防火牆 (或其他防衛系統)~
假設你高頻率掃描多次,就很有可能被盯上!! (怕。)
以上的情境就有點類似在幹壞事 (黑箱測試) 的時候,希望靜悄悄地幹壞事,但是要幹地很精準 (???)
所以啦! 這時候我們就需要提升效率! 提升掃描效率好處多多,讓我們一起來看看吧 ><
當掃描大規模網路或多個目標時,默認的 Nmap
設定可能花費大量時間。透過優化掃描參數,可以顯著縮短掃描所需的時間。
在網路頻寬有限或延遲較高的環境中,調整 Nmap
參數(如封包速率或超時)可以減少掃描對網路資源的佔用,避免對網路性能的負面影響。
筆者 say say 念:
換成白話文來說,就是這機器爛 XD 它無法消化你丟給它的東西。
你丟越多給它,反而有更高機率讓它無法消化,浪費你更多時間 @@
在白箱測試或安全系統允許的情況下,加快掃描速度有助於更高效地進行漏洞檢測。
反之,在黑箱測試中,減慢掃描速度可以避免觸發安全系統的封鎖。
更快的掃描能節省計算和網路資源,尤其是在資源有限的情況下,這樣可以更高效地分配掃描任務!
假設我們要搜尋 10.129.2.0 子網中所有的 IP
位置:
sudo nmap 10.129.2.0/24 -F --initial-rtt-timeout 50ms --max-rtt-timeout 100ms
-F:
掃描前 100 個常見的端口,這樣可以提高掃描速度而不浪費時間掃描所有端口。
--initial-rtt-timeout 50ms:
設定初始 RTT
超時為 50 毫秒。Nmap
在發送封包後,會等待此時間段內的回應,過期後即認為該端口沒有回應,並進行進一步操作。
--max-rtt-timeout 100ms:
設定最大 RTT
超時為 100 毫秒。如果初始超時後沒有回應,Nmap
會進一步等待最多 100 毫秒,之後便會認為該端口無法訪問。
減少 RTT
超時可以加快掃描速度,但可能會漏掉回應較慢的主機或端口。
sudo nmap 10.129.2.0/24 -F --max-retries 0
承繼之前的目標進行掃描,多設定一個重試次數 --max-retries
減少重試次數可以顯著加快掃描速度,尤其是在有大量端口或目標的情況下,但可能會忽略那些由於暫時原因未回應的端口。
筆者 say say 念:
在白箱滲透測試中,當我們被安全系統列入白名單後,可以專注於檢查系統漏洞,而不是測試防護措施。
通過設定最小發包速率(--min-rate <number>
),可以加快Nmap
的掃描速度,讓Nmap
同時發送指定數量的封包並保持該速率。
sudo nmap 10.129.2.0/24 -F --min-rate 300
--min-rate 300:
設定每秒最少發送 300 個封包。Nmap
會嘗試保持這個速率來進行掃描。
提高封包發送速率可顯著縮短掃描時間,尤其在網路頻寬充裕的環境下。
然而,過高的封包速率可能會對網路產生負擔,並導致某些系統無法正常回應 ><
sudo nmap 10.129.2.0/24 -F -oN resultfile --min-rate 300 --max-retries 0
加上 -oN <filename>
可以指定將最後搜尋出來的內容保存到該文件中~
筆者爆肝宣言:
Nmap 的指令多多,包山包海 XD 我有稍微介紹了一些重要的~
但防火牆繞過的部分還是得下次再講XD 要不然真的太多啦~~~
真的是超爆肝ㄉQQ 最近事情有夠多 TAT
但保持反思的能力還是很重要的~
繼續加油!
https://academy.hackthebox.com/
https://nmap.org/book/man-performance.html